package com.itheima.behavior.service;

import com.itheima.model.common.dtos.ResponseResult;

/**
 * 数据分析服务接口
 */
public interface AnalyticsService {

    /**
     * 获取当前登录用户阅读趋势
     * @param days 天数（7或30）
     * @return 阅读趋势数据
     */
    ResponseResult getMyReadingTrend(Integer days);

    /**
     * 获取指定用户阅读趋势（最近7天/30天）
     * @param userId 用户ID
     * @param days 天数（7或30）
     * @return 阅读趋势数据
     */
    ResponseResult getReadingTrend(Integer userId, Integer days);

    /**
     * 获取图书热度排行
     * @param limit 返回数量
     * @param orderBy 排序字段：view/reading/like/collect/score
     * @return 热门图书列表
     */
    ResponseResult getBookPopularity(Integer limit, String orderBy);

    /**
     * 获取当前登录用户分类偏好统计
     * @return 分类统计数据
     */
    ResponseResult getMyCategoryStatistics();

    /**
     * 获取分类偏好统计
     * @param userId 用户ID（为null时统计全局）
     * @return 分类统计数据
     */
    ResponseResult getCategoryStatistics(Integer userId);

    /**
     * 获取当前登录用户活跃度分析
     * @param days 统计天数
     * @return 活跃度数据
     */
    ResponseResult getMyActivityAnalysis(Integer days);

    /**
     * 获取用户活跃度分析
     * @param userId 用户ID
     * @param days 统计天数
     * @return 活跃度数据
     */
    ResponseResult getUserActivityAnalysis(Integer userId, Integer days);

    /**
     * 获取当前登录用户阅读时段分布
     * @return 时段分布数据
     */
    ResponseResult getMyReadingTimeDistribution();

    /**
     * 获取阅读时段分布
     * @param userId 用户ID
     * @return 时段分布数据
     */
    ResponseResult getReadingTimeDistribution(Integer userId);

    /**
     * 获取平台整体数据概览
     * @return 平台统计数据
     */
    ResponseResult getPlatformOverview();

    /**
     * 获取当前登录用户阅读报告
     * @param type 报告类型：week/month/year
     * @return 阅读报告
     */
    ResponseResult getMyReadingReport(String type);

    /**
     * 获取用户阅读报告
     * @param userId 用户ID
     * @param type 报告类型：week/month/year
     * @return 阅读报告
     */
    ResponseResult getReadingReport(Integer userId, String type);
}

